<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        
    </body>
    <script>
        // ES8 新特性
            // async和await
            //     async和await两种语法结合可以让异步代码像同步代码一样
            // async函数
            //     1.async函数的返回值为promise对象
            //     2.promise对象的结果有async函数执行的返回值决定

        // async函数
        async function fn(){
            // 返回一个字符串
            // return '清华北大';// Promise {<fulfilled>: "清华北大"}

            // 返回的结果不是一个 Promise 类型的对象,返回的结果就是成功的 Promise对象
            // return; // Promise {<fulfilled>: undefined}

            // 抛出错误,返回的结果是一个失败的 Promise
            // throw new Error("出错了");// Promise {<rejected>: Error: 出错了

            // 返回的结果如果是一个Promise 对象
            return new Promise((resolve,reject)=>{
                resolve("成功的数据");//Promise {<fulfilled>}
                // reject("失败");// Promise {<rejected>}

            })
        }
        const result = fn();
        // console.log(result);

        // 调用 then 方法
        result.then(value=>{
            console.log(value);
        },reason=>{
            console.warn(reason)
        })
    </script>
</html>